System.register(['core-js', './template-registry-entry'], function (_export) {
'use strict';
var core, TemplateRegistryEntry, hasTemplateElement, Loader;
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
function importElements(frag, link, callback) {
Eif (frag) {
document.head.appendChild(frag);
}
Iif (window.Polymer && Polymer.whenReady) {
Polymer.whenReady(callback);
} else {
link.addEventListener('load', callback);
}
}
return {
setters: [function (_coreJs) {
core = _coreJs['default'];
}, function (_templateRegistryEntry) {
TemplateRegistryEntry = _templateRegistryEntry.TemplateRegistryEntry;
}],
execute: function () {
hasTemplateElement = 'content' in document.createElement('template');
Loader = (function () {
function Loader() {
_classCallCheck(this, Loader);
this.templateRegistry = {};
}
Loader.prototype.loadModule = function loadModule(id) {
throw new Error('Loaders must implement loadModule(id).');
};
Loader.prototype.loadAllModules = function loadAllModules(ids) {
throw new Error('Loader must implement loadAllModules(ids).');
};
Loader.prototype.loadTemplate = function loadTemplate(url) {
throw new Error('Loader must implement loadTemplate(url).');
};
Loader.prototype.loadText = function loadText(url) {
throw new Error('Loader must implement loadText(url).');
};
Loader.prototype.getOrCreateTemplateRegistryEntry = function getOrCreateTemplateRegistryEntry(id) {
var entry = this.templateRegistry[id];
if (entry === undefined) {
this.templateRegistry[id] = entry = new TemplateRegistryEntry(id);
}
return entry;
};
Loader.prototype.importDocument = function importDocument(url) {
return new Promise(function (resolve, reject) {
var frag = document.createDocumentFragment();
var link = document.createElement('link');
link.rel = 'import';
link.href = url;
frag.appendChild(link);
importElements(frag, link, function () {
return resolve(link['import']);
});
});
};
Loader.prototype.importBundle = function importBundle(link) {
return new Promise(function (resolve, reject) {
if (link['import']) {
if (!hasTemplateElement) {
HTMLTemplateElement.bootstrap(link['import']);
}
resolve(link['import']);
} else {
importElements(null, link, function () {
if (!hasTemplateElement) {
HTMLTemplateElement.bootstrap(link['import']);
}
resolve(link['import']);
});
}
});
};
Loader.prototype.importTemplate = function importTemplate(url) {
var _this = this;
return this.importDocument(url).then(function (doc) {
return _this.findTemplate(doc, url);
});
};
Loader.prototype.findTemplate = function findTemplate(doc, url) {
Iif (!hasTemplateElement) {
HTMLTemplateElement.bootstrap(doc);
}
var template = doc.getElementsByTagName('template')[0];
if (!template) {
throw new Error('There was no template element found in \'' + url + '\'.');
}
return template;
};
Loader.prototype.findBundledTemplate = function findBundledTemplate(name, entry) {
var _this2 = this;
if (this.bundle) {
var found = this.bundle.getElementById(name);
if (found) {
entry.setTemplate(found);
return Promise.resolve(true);
}
} else if (!this.bundleChecked) {
this.bundleChecked = true;
var bundleLink = document.querySelector('link[aurelia-view-bundle]');
if (bundleLink) {
return this.importBundle(bundleLink).then(function (doc) {
_this2.bundle = doc;
var found = _this2.bundle.getElementById(name);
if (found) {
entry.setTemplate(found);
return Promise.resolve(true);
}
});
}
}
return Promise.resolve(false);
};
return Loader;
})();
_export('Loader', Loader);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2xvYWRlci9zcmMvbG9hZGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OzttQ0FHSSxrQkFBa0IsRUFjVCxNQUFNOzs7O0FBWm5CLFdBQVMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0FBQzVDLFFBQUcsSUFBSSxFQUFDO0FBQ04sY0FBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakM7O0FBRUQsUUFBRyxNQUFNLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUM7QUFDckMsYUFBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUM3QixNQUFJO0FBQ0gsVUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztLQUN6QztHQUNGOzs7Ozs7cURBZE8scUJBQXFCOzs7QUFFekIsd0JBQWtCLEdBQUksU0FBUyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDOztBQWM1RCxZQUFNO0FBQ04saUJBREEsTUFBTSxHQUNKO2dDQURGLE1BQU07O0FBRWYsY0FBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztTQUM1Qjs7QUFIVSxjQUFNLFdBS2pCLFVBQVUsR0FBQSxvQkFBQyxFQUFFLEVBQUM7QUFDWixnQkFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzNEOztBQVBVLGNBQU0sV0FTakIsY0FBYyxHQUFBLHdCQUFDLEdBQUcsRUFBQztBQUNqQixnQkFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQy9EOztBQVhVLGNBQU0sV0FhakIsWUFBWSxHQUFBLHNCQUFDLEdBQUcsRUFBQztBQUNmLGdCQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7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OUIsY0FBRyxJQUFJLENBQUMsTUFBTSxFQUFDO0FBQ2IsZ0JBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdDLGdCQUFHLEtBQUssRUFBQztBQUNQLG1CQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLHFCQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUI7V0FDRixNQUFLLElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFDO0FBQzNCLGdCQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzs7QUFFMUIsZ0JBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUNyRSxnQkFBRyxVQUFVLEVBQUM7QUFDWixxQkFBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFBLEdBQUcsRUFBSTtBQUMvQyx1QkFBSyxNQUFNLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLG9CQUFJLEtBQUssR0FBRyxPQUFLLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0Msb0JBQUcsS0FBSyxFQUFDO0FBQ1AsdUJBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIseUJBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUI7ZUFDRixDQUFDLENBQUM7YUFDSjtXQUNGOztBQUVELGlCQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7O2VBNUdVLE1BQU07Ozt3QkFBTixNQUFNIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2xvYWRlci9zcmMvbG9hZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmUgZnJvbSAnY29yZS1qcyc7XG5pbXBvcnQge1RlbXBsYXRlUmVnaXN0cnlFbnRyeX0gZnJvbSAnLi90ZW1wbGF0ZS1yZWdpc3RyeS1lbnRyeSc7XG5cbnZhciBoYXNUZW1wbGF0ZUVsZW1lbnQgPSAoJ2NvbnRlbnQnIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJykpO1xuXG5mdW5jdGlvbiBpbXBvcnRFbGVtZW50cyhmcmFnLCBsaW5rLCBjYWxsYmFjaykge1xuICBpZihmcmFnKXtcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGZyYWcpO1xuICB9XG5cbiAgaWYod2luZG93LlBvbHltZXIgJiYgUG9seW1lci53aGVuUmVhZHkpe1xuICAgIFBvbHltZXIud2hlblJlYWR5KGNhbGxiYWNrKTtcbiAgfWVsc2V7XG4gICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgY2FsbGJhY2spO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkZXIge1xuICBjb25zdHJ1Y3Rvcigpe1xuICAgIHRoaXMudGVtcGxhdGVSZWdpc3RyeSA9IHt9O1xuICB9XG5cbiAgbG9hZE1vZHVsZShpZCl7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMb2FkZXJzIG11c3QgaW1wbGVtZW50IGxvYWRNb2R1bGUoaWQpLicpO1xuICB9XG5cbiAgbG9hZEFsbE1vZHVsZXMoaWRzKXtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvYWRlciBtdXN0IGltcGxlbWVudCBsb2FkQWxsTW9kdWxlcyhpZHMpLicpO1xuICB9XG5cbiAgbG9hZFRlbXBsYXRlKHVybCl7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMb2FkZXIgbXVzdCBpbXBsZW1lbnQgbG9hZFRlbXBsYXRlKHVybCkuJyk7XG4gIH1cblxuICBsb2FkVGV4dCh1cmwpe1xuICAgIHRocm93IG5ldyBFcnJvcignTG9hZGVyIG11c3QgaW1wbGVtZW50IGxvYWRUZXh0KHVybCkuJyk7XG4gIH1cblxuICBnZXRPckNyZWF0ZVRlbXBsYXRlUmVnaXN0cnlFbnRyeShpZCl7XG4gICAgdmFyIGVudHJ5ID0gdGhpcy50ZW1wbGF0ZVJlZ2lzdHJ5W2lkXTtcblxuICAgIGlmKGVudHJ5ID09PSB1bmRlZmluZWQpe1xuICAgICAgdGhpcy50ZW1wbGF0ZVJlZ2lzdHJ5W2lkXSA9IGVudHJ5ID0gbmV3IFRlbXBsYXRlUmVnaXN0cnlFbnRyeShpZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5O1xuICB9XG5cbiAgaW1wb3J0RG9jdW1lbnQodXJsKXtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdmFyIGZyYWcgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcblxuICAgICAgbGluay5yZWwgPSAnaW1wb3J0JztcbiAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgIGZyYWcuYXBwZW5kQ2hpbGQobGluayk7XG5cbiAgICAgIGltcG9ydEVsZW1lbnRzKGZyYWcsIGxpbmssICgpID0+IHJlc29sdmUobGluay5pbXBvcnQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGltcG9ydEJ1bmRsZShsaW5rKXtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYobGluay5pbXBvcnQpe1xuICAgICAgICBpZighaGFzVGVtcGxhdGVFbGVtZW50KXtcbiAgICAgICAgICBIVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcChsaW5rLmltcG9ydCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXNvbHZlKGxpbmsuaW1wb3J0KTtcbiAgICAgIH1lbHNle1xuICAgICAgICBpbXBvcnRFbGVtZW50cyhudWxsLCBsaW5rLCAoKSA9PiB7XG4gICAgICAgICAgaWYoIWhhc1RlbXBsYXRlRWxlbWVudCl7XG4gICAgICAgICAgICBIVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcChsaW5rLmltcG9ydCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZShsaW5rLmltcG9ydCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaW1wb3J0VGVtcGxhdGUodXJsKXtcbiAgICByZXR1cm4gdGhpcy5pbXBvcnREb2N1bWVudCh1cmwpLnRoZW4oZG9jID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRUZW1wbGF0ZShkb2MsIHVybCk7XG4gICAgfSk7XG4gIH1cblxuICBmaW5kVGVtcGxhdGUoZG9jLCB1cmwpe1xuICAgIGlmKCFoYXNUZW1wbGF0ZUVsZW1lbnQpe1xuICAgICAgSFRNTFRlbXBsYXRlRWxlbWVudC5ib290c3RyYXAoZG9jKTtcbiAgICB9XG5cbiAgICB2YXIgdGVtcGxhdGUgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RlbXBsYXRlJylbMF07XG5cbiAgICBpZighdGVtcGxhdGUpe1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSB3YXMgbm8gdGVtcGxhdGUgZWxlbWVudCBmb3VuZCBpbiAnJHt1cmx9Jy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGU7XG4gIH1cblxuICBmaW5kQnVuZGxlZFRlbXBsYXRlKG5hbWUsIGVudHJ5KXtcbiAgICBpZih0aGlzLmJ1bmRsZSl7XG4gICAgICB2YXIgZm91bmQgPSB0aGlzLmJ1bmRsZS5nZXRFbGVtZW50QnlJZChuYW1lKTtcbiAgICAgIGlmKGZvdW5kKXtcbiAgICAgICAgZW50cnkuc2V0VGVtcGxhdGUoZm91bmQpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICAgICAgfVxuICAgIH1lbHNlIGlmKCF0aGlzLmJ1bmRsZUNoZWNrZWQpe1xuICAgICAgdGhpcy5idW5kbGVDaGVja2VkID0gdHJ1ZTtcblxuICAgICAgdmFyIGJ1bmRsZUxpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW2F1cmVsaWEtdmlldy1idW5kbGVdJyk7XG4gICAgICBpZihidW5kbGVMaW5rKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1wb3J0QnVuZGxlKGJ1bmRsZUxpbmspLnRoZW4oZG9jID0+IHtcbiAgICAgICAgICB0aGlzLmJ1bmRsZSA9IGRvYztcbiAgICAgICAgICB2YXIgZm91bmQgPSB0aGlzLmJ1bmRsZS5nZXRFbGVtZW50QnlJZChuYW1lKTtcbiAgICAgICAgICBpZihmb3VuZCl7XG4gICAgICAgICAgICBlbnRyeS5zZXRUZW1wbGF0ZShmb3VuZCk7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gIH1cbn1cbiJdfQ== |